# 你想实现一个自定义迭代模式


def frange(start, end, step):
    x = start
    while x < end:
        yield x
        x += step

for item in frange(0, 5, 0.5):
    print(item)

print(list(frange(1, 5, 0.5)))
print(sum(frange(0, 5, 0.5)))

# 一个函数中需要有一个yield 语句即可将其转换为一个生成器。
# 跟普通函数不同的是，生成器只能用于迭代操作


def countdown(n):
    print('Starting countdown from', n)
    while n > 0:
        yield n
        n -= 1
    print('Done')

print(countdown(3))
